{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "#logloss\n",
    "from sklearn.metrics import log_loss\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>building_id</th>\n",
       "      <th>created</th>\n",
       "      <th>description</th>\n",
       "      <th>display_address</th>\n",
       "      <th>features</th>\n",
       "      <th>interest_level</th>\n",
       "      <th>latitude</th>\n",
       "      <th>listing_id</th>\n",
       "      <th>longitude</th>\n",
       "      <th>manager_id</th>\n",
       "      <th>photos</th>\n",
       "      <th>price</th>\n",
       "      <th>street_address</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1.5</td>\n",
       "      <td>3</td>\n",
       "      <td>53a5b119ba8f7b61d4e010512e0dfc85</td>\n",
       "      <td>2016-06-24 07:54:24</td>\n",
       "      <td>A Brand New 3 Bedroom 1.5 bath ApartmentEnjoy ...</td>\n",
       "      <td>Metropolitan Avenue</td>\n",
       "      <td>[]</td>\n",
       "      <td>medium</td>\n",
       "      <td>40.7145</td>\n",
       "      <td>7211212</td>\n",
       "      <td>-73.9425</td>\n",
       "      <td>5ba989232d0489da1b5f2c45f6688adc</td>\n",
       "      <td>[https://photos.renthop.com/2/7211212_1ed4542e...</td>\n",
       "      <td>3000</td>\n",
       "      <td>792 Metropolitan Avenue</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10000</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>c5c8a357cba207596b04d1afd1e4f130</td>\n",
       "      <td>2016-06-12 12:19:27</td>\n",
       "      <td></td>\n",
       "      <td>Columbus Avenue</td>\n",
       "      <td>[Doorman, Elevator, Fitness Center, Cats Allow...</td>\n",
       "      <td>low</td>\n",
       "      <td>40.7947</td>\n",
       "      <td>7150865</td>\n",
       "      <td>-73.9667</td>\n",
       "      <td>7533621a882f71e25173b27e3139d83d</td>\n",
       "      <td>[https://photos.renthop.com/2/7150865_be3306c5...</td>\n",
       "      <td>5465</td>\n",
       "      <td>808 Columbus Avenue</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100004</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>c3ba40552e2120b0acfc3cb5730bb2aa</td>\n",
       "      <td>2016-04-17 03:26:41</td>\n",
       "      <td>Top Top West Village location, beautiful Pre-w...</td>\n",
       "      <td>W 13 Street</td>\n",
       "      <td>[Laundry In Building, Dishwasher, Hardwood Flo...</td>\n",
       "      <td>high</td>\n",
       "      <td>40.7388</td>\n",
       "      <td>6887163</td>\n",
       "      <td>-74.0018</td>\n",
       "      <td>d9039c43983f6e564b1482b273bd7b01</td>\n",
       "      <td>[https://photos.renthop.com/2/6887163_de85c427...</td>\n",
       "      <td>2850</td>\n",
       "      <td>241 W 13 Street</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100007</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>28d9ad350afeaab8027513a3e52ac8d5</td>\n",
       "      <td>2016-04-18 02:22:02</td>\n",
       "      <td>Building Amenities - Garage - Garden - fitness...</td>\n",
       "      <td>East 49th Street</td>\n",
       "      <td>[Hardwood Floors, No Fee]</td>\n",
       "      <td>low</td>\n",
       "      <td>40.7539</td>\n",
       "      <td>6888711</td>\n",
       "      <td>-73.9677</td>\n",
       "      <td>1067e078446a7897d2da493d2f741316</td>\n",
       "      <td>[https://photos.renthop.com/2/6888711_6e660cee...</td>\n",
       "      <td>3275</td>\n",
       "      <td>333 East 49th Street</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100013</th>\n",
       "      <td>1.0</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>2016-04-28 01:32:41</td>\n",
       "      <td>Beautifully renovated 3 bedroom flex 4 bedroom...</td>\n",
       "      <td>West 143rd Street</td>\n",
       "      <td>[Pre-War]</td>\n",
       "      <td>low</td>\n",
       "      <td>40.8241</td>\n",
       "      <td>6934781</td>\n",
       "      <td>-73.9493</td>\n",
       "      <td>98e13ad4b495b9613cef886d79a6291f</td>\n",
       "      <td>[https://photos.renthop.com/2/6934781_1fa4b41a...</td>\n",
       "      <td>3350</td>\n",
       "      <td>500 West 143rd Street</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100014</th>\n",
       "      <td>2.0</td>\n",
       "      <td>4</td>\n",
       "      <td>38a913e46c94a7f46ddf19b756a9640c</td>\n",
       "      <td>2016-04-19 04:24:47</td>\n",
       "      <td></td>\n",
       "      <td>West 18th Street</td>\n",
       "      <td>[]</td>\n",
       "      <td>medium</td>\n",
       "      <td>40.7429</td>\n",
       "      <td>6894514</td>\n",
       "      <td>-74.0028</td>\n",
       "      <td>b209e2c4384a64cc307c26759ee0c651</td>\n",
       "      <td>[https://photos.renthop.com/2/6894514_9abb8592...</td>\n",
       "      <td>7995</td>\n",
       "      <td>350 West 18th Street</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100016</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>3ba49a93260ca5df92fde024cb4ca61f</td>\n",
       "      <td>2016-04-27 03:19:56</td>\n",
       "      <td>Stunning unit with a great location and lots o...</td>\n",
       "      <td>West 107th Street</td>\n",
       "      <td>[prewar, elevator, Dogs Allowed, Cats Allowed,...</td>\n",
       "      <td>low</td>\n",
       "      <td>40.8012</td>\n",
       "      <td>6930771</td>\n",
       "      <td>-73.9660</td>\n",
       "      <td>01287194f20de51872e81f660def4784</td>\n",
       "      <td>[https://photos.renthop.com/2/6930771_7e3622b6...</td>\n",
       "      <td>3600</td>\n",
       "      <td>210 West 107th Street</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100020</th>\n",
       "      <td>2.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0372927bcb6a0949613ef5bf893bbac7</td>\n",
       "      <td>2016-04-13 06:01:42</td>\n",
       "      <td>This huge sunny ,plenty of lights 1 bed/2 bath...</td>\n",
       "      <td>West 21st Street</td>\n",
       "      <td>[Doorman, Elevator, Pre-War, Terrace, Laundry ...</td>\n",
       "      <td>low</td>\n",
       "      <td>40.7427</td>\n",
       "      <td>6867392</td>\n",
       "      <td>-73.9957</td>\n",
       "      <td>e6472c7237327dd3903b3d6f6a94515a</td>\n",
       "      <td>[https://photos.renthop.com/2/6867392_b18283f6...</td>\n",
       "      <td>5645</td>\n",
       "      <td>155 West 21st Street</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100026</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>a7efbeb58190aa267b4a9121cd0c88c0</td>\n",
       "      <td>2016-04-20 02:36:35</td>\n",
       "      <td>&lt;p&gt;&lt;a  website_redacted</td>\n",
       "      <td>Hamilton Terrace</td>\n",
       "      <td>[Cats Allowed, Dogs Allowed, Elevator, Laundry...</td>\n",
       "      <td>medium</td>\n",
       "      <td>40.8234</td>\n",
       "      <td>6898799</td>\n",
       "      <td>-73.9457</td>\n",
       "      <td>c1a6598437b7db560cde66e5a297a53f</td>\n",
       "      <td>[https://photos.renthop.com/2/6898799_3759be4c...</td>\n",
       "      <td>1725</td>\n",
       "      <td>63 Hamilton Terrace</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100027</th>\n",
       "      <td>2.0</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>2016-04-02 02:58:15</td>\n",
       "      <td>This is a spacious four bedroom with every bed...</td>\n",
       "      <td>522 E 11th</td>\n",
       "      <td>[Dishwasher, Hardwood Floors]</td>\n",
       "      <td>low</td>\n",
       "      <td>40.7278</td>\n",
       "      <td>6814332</td>\n",
       "      <td>-73.9808</td>\n",
       "      <td>23a01ea7717b38875f5b070282d1b9d2</td>\n",
       "      <td>[https://photos.renthop.com/2/6814332_e19a8552...</td>\n",
       "      <td>5800</td>\n",
       "      <td>522 E 11th</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        bathrooms  bedrooms                       building_id  \\\n",
       "10            1.5         3  53a5b119ba8f7b61d4e010512e0dfc85   \n",
       "10000         1.0         2  c5c8a357cba207596b04d1afd1e4f130   \n",
       "100004        1.0         1  c3ba40552e2120b0acfc3cb5730bb2aa   \n",
       "100007        1.0         1  28d9ad350afeaab8027513a3e52ac8d5   \n",
       "100013        1.0         4                                 0   \n",
       "100014        2.0         4  38a913e46c94a7f46ddf19b756a9640c   \n",
       "100016        1.0         2  3ba49a93260ca5df92fde024cb4ca61f   \n",
       "100020        2.0         1  0372927bcb6a0949613ef5bf893bbac7   \n",
       "100026        1.0         1  a7efbeb58190aa267b4a9121cd0c88c0   \n",
       "100027        2.0         4                                 0   \n",
       "\n",
       "                    created  \\\n",
       "10      2016-06-24 07:54:24   \n",
       "10000   2016-06-12 12:19:27   \n",
       "100004  2016-04-17 03:26:41   \n",
       "100007  2016-04-18 02:22:02   \n",
       "100013  2016-04-28 01:32:41   \n",
       "100014  2016-04-19 04:24:47   \n",
       "100016  2016-04-27 03:19:56   \n",
       "100020  2016-04-13 06:01:42   \n",
       "100026  2016-04-20 02:36:35   \n",
       "100027  2016-04-02 02:58:15   \n",
       "\n",
       "                                              description  \\\n",
       "10      A Brand New 3 Bedroom 1.5 bath ApartmentEnjoy ...   \n",
       "10000                                                       \n",
       "100004  Top Top West Village location, beautiful Pre-w...   \n",
       "100007  Building Amenities - Garage - Garden - fitness...   \n",
       "100013  Beautifully renovated 3 bedroom flex 4 bedroom...   \n",
       "100014                                                      \n",
       "100016  Stunning unit with a great location and lots o...   \n",
       "100020  This huge sunny ,plenty of lights 1 bed/2 bath...   \n",
       "100026                           <p><a  website_redacted    \n",
       "100027  This is a spacious four bedroom with every bed...   \n",
       "\n",
       "            display_address  \\\n",
       "10      Metropolitan Avenue   \n",
       "10000       Columbus Avenue   \n",
       "100004          W 13 Street   \n",
       "100007     East 49th Street   \n",
       "100013    West 143rd Street   \n",
       "100014     West 18th Street   \n",
       "100016    West 107th Street   \n",
       "100020     West 21st Street   \n",
       "100026     Hamilton Terrace   \n",
       "100027           522 E 11th   \n",
       "\n",
       "                                                 features interest_level  \\\n",
       "10                                                     []         medium   \n",
       "10000   [Doorman, Elevator, Fitness Center, Cats Allow...            low   \n",
       "100004  [Laundry In Building, Dishwasher, Hardwood Flo...           high   \n",
       "100007                          [Hardwood Floors, No Fee]            low   \n",
       "100013                                          [Pre-War]            low   \n",
       "100014                                                 []         medium   \n",
       "100016  [prewar, elevator, Dogs Allowed, Cats Allowed,...            low   \n",
       "100020  [Doorman, Elevator, Pre-War, Terrace, Laundry ...            low   \n",
       "100026  [Cats Allowed, Dogs Allowed, Elevator, Laundry...         medium   \n",
       "100027                      [Dishwasher, Hardwood Floors]            low   \n",
       "\n",
       "        latitude  listing_id  longitude                        manager_id  \\\n",
       "10       40.7145     7211212   -73.9425  5ba989232d0489da1b5f2c45f6688adc   \n",
       "10000    40.7947     7150865   -73.9667  7533621a882f71e25173b27e3139d83d   \n",
       "100004   40.7388     6887163   -74.0018  d9039c43983f6e564b1482b273bd7b01   \n",
       "100007   40.7539     6888711   -73.9677  1067e078446a7897d2da493d2f741316   \n",
       "100013   40.8241     6934781   -73.9493  98e13ad4b495b9613cef886d79a6291f   \n",
       "100014   40.7429     6894514   -74.0028  b209e2c4384a64cc307c26759ee0c651   \n",
       "100016   40.8012     6930771   -73.9660  01287194f20de51872e81f660def4784   \n",
       "100020   40.7427     6867392   -73.9957  e6472c7237327dd3903b3d6f6a94515a   \n",
       "100026   40.8234     6898799   -73.9457  c1a6598437b7db560cde66e5a297a53f   \n",
       "100027   40.7278     6814332   -73.9808  23a01ea7717b38875f5b070282d1b9d2   \n",
       "\n",
       "                                                   photos  price  \\\n",
       "10      [https://photos.renthop.com/2/7211212_1ed4542e...   3000   \n",
       "10000   [https://photos.renthop.com/2/7150865_be3306c5...   5465   \n",
       "100004  [https://photos.renthop.com/2/6887163_de85c427...   2850   \n",
       "100007  [https://photos.renthop.com/2/6888711_6e660cee...   3275   \n",
       "100013  [https://photos.renthop.com/2/6934781_1fa4b41a...   3350   \n",
       "100014  [https://photos.renthop.com/2/6894514_9abb8592...   7995   \n",
       "100016  [https://photos.renthop.com/2/6930771_7e3622b6...   3600   \n",
       "100020  [https://photos.renthop.com/2/6867392_b18283f6...   5645   \n",
       "100026  [https://photos.renthop.com/2/6898799_3759be4c...   1725   \n",
       "100027  [https://photos.renthop.com/2/6814332_e19a8552...   5800   \n",
       "\n",
       "                 street_address  \n",
       "10      792 Metropolitan Avenue  \n",
       "10000       808 Columbus Avenue  \n",
       "100004          241 W 13 Street  \n",
       "100007     333 East 49th Street  \n",
       "100013    500 West 143rd Street  \n",
       "100014     350 West 18th Street  \n",
       "100016    210 West 107th Street  \n",
       "100020     155 West 21st Street  \n",
       "100026      63 Hamilton Terrace  \n",
       "100027               522 E 11th  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# load Data\n",
    "dpath = './Desktop/Data/Rental/'\n",
    "train = pd.read_json(dpath + 'train.json')\n",
    "test = pd.read_json(dpath + 'test.json')\n",
    "train.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "原数据中缺省值为零值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "bathrooms          0\n",
       "bedrooms           0\n",
       "building_id        0\n",
       "created            0\n",
       "description        0\n",
       "display_address    0\n",
       "features           0\n",
       "interest_level     0\n",
       "latitude           0\n",
       "listing_id         0\n",
       "longitude          0\n",
       "manager_id         0\n",
       "photos             0\n",
       "price              0\n",
       "street_address     0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 49352 entries, 10 to 99994\n",
      "Data columns (total 15 columns):\n",
      "bathrooms          49352 non-null float64\n",
      "bedrooms           49352 non-null int64\n",
      "building_id        49352 non-null object\n",
      "created            49352 non-null object\n",
      "description        49352 non-null object\n",
      "display_address    49352 non-null object\n",
      "features           49352 non-null object\n",
      "interest_level     49352 non-null object\n",
      "latitude           49352 non-null float64\n",
      "listing_id         49352 non-null int64\n",
      "longitude          49352 non-null float64\n",
      "manager_id         49352 non-null object\n",
      "photos             49352 non-null object\n",
      "price              49352 non-null int64\n",
      "street_address     49352 non-null object\n",
      "dtypes: float64(3), int64(3), object(9)\n",
      "memory usage: 6.0+ MB\n"
     ]
    }
   ],
   "source": [
    "train.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.特征处理及数据清洗"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "look at the Target variable"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x26f0ec50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "level = train['interest_level'].value_counts()\n",
    "plt.figure(figsize=(8,6))\n",
    "sns.barplot(level.index, level.values, alpha=0.5, color='r')\n",
    "plt.xlabel('Interest level', fontsize=15)\n",
    "plt.ylabel('Count', fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(49352, 15)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(74659, 14)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "all_data size is : (124011, 15)\n"
     ]
    }
   ],
   "source": [
    "all_data = pd.concat((train, test)).reset_index(drop=True)\n",
    "print('all_data size is : {}'.format(all_data.shape))\n",
    "# 这里将train和test合并，一起做数据处理"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1barthroom & interest_level"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nfOT/A2Qqjo+ZpgVGAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x281fd128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# violinplot \n",
    "sns.violinplot(x='interest_level', y='bathrooms', data= train)\n",
    "plt.xlabel('interest_level', fontsize=12)\n",
    "plt.ylabel('bathrooms', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "看起来bathrooms分布很平均。\n",
    "接下来看看bedrooms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuEAAAHjCAYAAACNYMEEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYnEW59/HvJAMJyxACBAEBBYRblEWOsgiCUVEUQXFX\njoogW0AWFRAhHAQjKAGUxRCFIFs88origYgSlyMkQQRZDgTxZkeRxQlmw2wkzPtHd7ANk5npZKam\n0/P9XBcX3fVUd99PAcNvKtVVLR0dHUiSJEkqZ1B/FyBJkiQNNIZwSZIkqTBDuCRJklSYIVySJEkq\nzBAuSZIkFWYIlyRJkgpr7e8CSmtvn+uejJIkSepzI0a0tSzvmjPhkiRJUmGGcEmSJKkwQ7gkSZJU\nmCFckiRJKswQLkmSJBVmCJckSZIKM4RLkiRJhRnCJUmSpMIM4T10++23MXnyLzu9dsMN1/f653X1\nnnff/UfGjj1rpT/jwAM/stLvIUmSpPoZwntot9125z3veW+n1370o2t6/fP64j0lSZLUGAbcsfUr\n6qabbuT555/n/vvvBeDpp//GMcd8iZkz/8Fzzz3LOed8g+OOO4FvfvPrtLf/ncGDWzn55NEAnHzy\nl1lrrbX42Mc+yYIFC/jZz34CwIc+9FHe+973c/HF3+HBBx9g0aJFfOELX+SBB+7jueeeZcKE7/H5\nzx/RZV1XX30Ft912Kx0dcMghh7PuuusyceKVnHHG2SxevJjDDz+Iyy67mokTr/q3frvsslvfDpgk\nSZKWyxBep7lz5zBu3ASmT7+PH/7wKs4++zyuuupyTjrpVK677kdstdXrOP30MTz44AOMH38RRx55\nDPPm/ZMf/GAic+bM4YQTjmX8+MsBOProw9h99z25/fbbuOii77FgwXz++te/cOCBn2XSpP/pNoA/\n+ugj3HffPYwbN4H58+dz1FGH8oMfTOSZZ55h3rx53HPPXey66+48/vhjr+i38867lhguSZIkdcIQ\nXqctttiKlpYWNthgBAsXLvq3a0888QQPPHAft99+GwCDB1eGd9NNN2PQoEE8/fRTtLc/x/HHHwXA\nvHn/5LnnnuHLX/4K5533TebN+ycf//iBPa7liSce54knHueYYyphfdGihcyePZuRI9/FlCm/4/bb\nb+Pggw/l4Ycf7rSfJEmS+ochvE4tLS2vaOvo6ABg880353Wv25oDDvgIzz77DLfdNrX6msrS+403\n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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x27563208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(12,8))\n",
    "sns.countplot(x='bathrooms', hue='interest_level',data=train)\n",
    "plt.xlabel('Count', fontsize=15)\n",
    "plt.ylabel('bathrooms', fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.2bedrooms和interest_level"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nku/Jpu4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x27521e80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.violinplot(x='interest_level', y='bedrooms', data=train)\n",
    "plt.xlabel('interest_level', fontsize=12)\n",
    "plt.ylabel('bedrooms', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x278fde80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(12,8))\n",
    "sns.countplot(x='bedrooms', hue='interest_level', data=train)\n",
    "plt.xlabel('Count', fontsize=15)\n",
    "plt.ylabel('bedrooms', fontsize=15)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.3 Price 和 interest_level"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nJLclWUvyaJJ3dvdzVXVpksun+7iuu++oqmOSfDzJSUlWk7y9u3dO9/GRJEdN9/3W7n78EHwvAABg\niEWudL8lybbuPj3JVUk+sG9DVR2Z5INJ3pTknCSXVdXL5sy5Ick13X1WkqUkF1XVy5O8K8kZSc5P\ncn1VHZ3kiiSPTMd+LMk1033cPN3H2ZnE97d+rScPAAAvhEWi+8wkdyVJd382yWkz216VZEd37+ru\nZ5Pcl+TsOXNel+Se6cd3Jjk3yeuT3N/du7v7iSQ7kpwyu499Y6dXv09KcmFVfSbJ6UkeOshzBgCA\nF9Qi0X1ckidmPt9bVVvX2baa5Pg5c5a6e+0AY/f3+r7XTkzy6iS/keQ7k5yQ5O0LnAMAAGyYA97T\nneTJJMszn2/p7j3rbFtO8qX15lTVcwuM3d/r+1778ySr3f3pJKmqO5Kcl+TW9Q7+hBNekq1bj1jg\nNAfY8XiWj9228PCVleUDD+Kw4f1mHuuD9VgbzGN9bF6LRPf9SS5M8stV9cYkj8xseyzJK6vqxCRP\nZXJryc9m8ouS+5vzcFVt7+7PJLkgyaczuT3kp6pqW5KjM7ll5dHp133zdPsFSe7t7i9X1f+uqrO6\n+97p1/vdeQe/a9fTC5ziOKtPPbPw2J07VwceCZvJysqy95t1WR+sx9pgHutj4837oWeR6L49yXlV\n9UAmv/z4jqq6OMmx3X1zVb0nyd2Z3Kpya3d/saq+as50X1cmuaWqjsok2D/Z3Xur6sYk9073cXV3\nP1NVH07y0aq6L8mzSS6e7uMHk3xoervK/0nyY4t/KwAA4IW3tLa2duBRL2I7d65u2Al+bsfjB3Wl\ne/trXjHwaNhMXI1gHuuD9VgbzGN9bLyVleWl9bZ5OA4AAAwmugEAYDDRDQAAg4luAAAYTHQDAMBg\nohsAAAYT3QAAMJjoBgCAwUQ3AAAMJroBAGAw0Q0AAIOJbgAAGEx0AwDAYKIbAAAGE90AADCY6AYA\ngMFENwAADCa6AQBgMNENAACDiW4AABhMdAMAwGCiGwAABhPdAAAwmOgGAIDBRDcAAAwmugEAYDDR\nDQAAg4luAAAYTHQDAMBgohsAAAYT3QAAMJjoBgCAwUQ3AAAMJroBAGAw0Q0AAIOJbgAAGEx0AwDA\nYKIbAAAGE90AADCY6AYAgMFENwAADCa6AQBgMNENAACDiW4AABhMdAMAwGCiGwAABhPdAAAwmOgG\nAIDBRDcAAAwmugEAYDDRDQAAg4luAAAYTHQDAMBgohsAAAYT3QAAMJjoBgCAwUQ3AAAMJroBAGAw\n0Q0AAIOJbgAAGEx0AwDAYKIbAAAGE90AADCY6AYAgMFENwAADCa6AQBgMNENAACDbT3QgKrakuSm\nJKcm2Z3kku7eMbP9wiTXJtmT5NbuvmW9OVV1cpLbkqwleTTJO7v7uaq6NMnl031c1913VNUxST6e\n5KQkq0ne3t07Z77ujyc5pbvf+jf9JgAAwEiLXOl+S5Jt3X16kquSfGDfhqo6MskHk7wpyTlJLquq\nl82Zc0OSa7r7rCRLSS6qqpcneVeSM5Kcn+T6qjo6yRVJHpmO/ViSa2a+7gVJvvtrPmsAAHgBLRLd\nZya5K0m6+7NJTpvZ9qokO7p7V3c/m+S+JGfPmfO6JPdMP74zyblJXp/k/u7e3d1PJNmR5JTZfcyM\nzfRq+eVJ3n+wJwsAABvhgLeXJDkuyRMzn++tqq3dvWc/21aTHL/enCRL3b12gLH7e301yfFVdWyS\nDyV5WybBf0AnnPCSbN16xCJDD70dj2f52G0LD19ZWR54MGw23m/msT5Yj7XBPNbH5rVIdD+ZZPYd\n3DIN7v1tW07ypfXmVNVzC4zd3+v7XntTkpcn+aUkL03yjVV1VXf/9HoHv2vX0wuc4jirTz2z8Nid\nO1cHHgmbycrKsvebdVkfrMfaYB7rY+PN+6FnkdtL7k/y5iSpqjcmeWRm22NJXllVJ1bVUZncWvLg\nnDkPV9X26ccXJLk3yUNJzqqqbVV1fCZXsB+d3ce+sd39a919andvT/LuJL85L7gBAGAzWORK9+1J\nzquqBzL55cd3VNXFSY7t7pur6j1J7s4k4G/t7i9W1VfNme7ryiS3TAP9sSSf7O69VXVjJgG+JcnV\n3f1MVX04yUer6r4kzya5+JCdNQAAvICW1tbWDjzqRWznztUNO8HP7Xj8oG4v2f6aVww8GjYT/wTI\nPNYH67E2mMf62HgrK8tL623zcBwAABhMdAMAwGCiGwAABhPdAAAwmOgGAIDBRDcAAAwmugEAYDDR\nDQAAg4luAAAYTHQDAMBgohsAAAYT3QAAMJjoBgCAwUQ3AAAMJroBAGAw0Q0AAIOJbgAAGEx0AwDA\nYKIbAAAGE90AADCY6AYAgMFENwAADCa6AQBgMNENAACDiW4AABhMdAMAwGCiGwAABhPdAAAwmOgG\nAIDBRDcAAAwmugEAYDDRDQAAg4luAAAYTHQDAMBgohsAAAYT3QAAMJjoBgCAwUQ3AAAMJroBAGAw\n0Q0AAIOJbgAAGEx0AwDAYKIbAAAGE90AADCY6AYAgMFENwAADCa6AQBgMNENAACDiW4AABhMdAMA\nwGCiGwAABhPdAAAwmOgGAIDBRDcAAAwmugEAYDDRDQAAg4luAAAYTHQDAMBgohsAAAYT3QAAMJjo\nBgCAwUQ3AAAMJroBAGAw0Q0AAIOJbgAAGEx0AwDAYFsPNKCqtiS5KcmpSXYnuaS7d8xsvzDJtUn2\nJLm1u29Zb05VnZzktiRrSR5N8s7ufq6qLk1y+XQf13X3HVV1TJKPJzkpyWqSt3f3zqr6B0muS/KV\nJP8vydu6++lD8L0AAIAhFrnS/ZYk27r79CRXJfnAvg1VdWSSDyZ5U5JzklxWVS+bM+eGJNd091lJ\nlpJcVFUvT/KuJGckOT/J9VV1dJIrkjwyHfuxJNdM93FTkrd099lJfj/JJV/ryQMAwAthkeg+M8ld\nSdLdn01y2sy2VyXZ0d27uvvZJPclOXvOnNcluWf68Z1Jzk3y+iT3d/fu7n4iyY4kp8zuY2Zskmzv\n7j+dfrw1yTMLny0AAGyAA95ekuS4JE/MfL63qrZ29579bFtNcvx6c5IsdffaAcbu7/V9r6W7/zhJ\nqup7knxnkvfNO/gTTnhJtm49YoHTHGDH41k+dtvCw1dWlgceDJuN95t5rA/WY20wj/WxeS0S3U8m\nmX0Ht0yDe3/blpN8ab05VfXcAmP39/q+15IkVfUjSf5xku/q7rlXunft2tjbvVefWvxC/M6dqwOP\nhM1kZWXZ+826rA/WY20wj/Wx8eb90LPI7SX3J3lzklTVG5M8MrPtsSSvrKoTq+qoTG4teXDOnIer\navv04wuS3JvkoSRnVdW2qjo+k1tWHp3dx8zYVNXVSc5Kcm53/9kCxw8AABtqkei+PckzVfVAJr80\n+SNVdXFVXdbdX0nyniR3ZxLbt3b3F/c3Z7qvK5P8ZFU9mOSoJJ/s7j9JcmMmUf2bSa6eXr3+cJJX\nV9V9SS6bzntZkvcn+cYkd1bVZ6rqikPwfQAAgGGW1tbWDjzqRWznztUNO8HP7Xj8oG4v2f6aVww8\nGjYT/wTIPNYH67E2mMf62HgrK8tL623zcBwAABhMdAMAwGCiGwAABhPdAAAwmOgGAIDBRDcAAAwm\nugEAYDDRDQAAg4luAAAYTHQDAMBgohsAAAYT3QAAMJjoBgCAwUQ3AAAMJroBAGAw0Q0AAIOJbgAA\nGEx0AwDAYKIbAAAGE90AADCY6AYAgMFENwAADCa6AQBgMNENAACDiW4AABhMdAMAwGCiGwAABhPd\nAAAwmOgGAIDBRDcAAAwmugEAYDDRDQAAg4luAAAYTHQDAMBgohsAAAYT3QAAMJjoBgCAwUQ3AAAM\nJroBAGAw0Q0AAIOJbgAAGEx0AwDAYKIbAAAGE90AADCY6AYAgMFENwAADCa6AQBgMNENAACDiW4A\nABhMdAMAwGCiGwAABhPdAAAwmOgGAIDBRDcAAAwmugEAYDDRDQAAg4luAAAYTHQDAMBgohsAAAYT\n3QAAMJjoBgCAwUQ3AAAMJroBAGAw0Q0AAIOJbgAAGEx0AwDAYKIbAAAG23qgAVW1JclNSU5NsjvJ\nJd29Y2b7hUmuTbInya3dfct6c6rq5CS3JVlL8miSd3b3c1V1aZLLp/u4rrvvqKpjknw8yUlJVpO8\nvbt3VtUbk/zcdOynuvsnD8U3AgAARjlgdCd5S5Jt3X36NHg/kOSiJKmqI5N8MMl3JPmLJPdX1X9N\ncsY6c25Ick13f6aqPpLkoqp6MMm7kpyWZFuS+6rqfyS5Iskj3f0TVfXWJNck+eEkH0nyvUn+IMl/\nq6rXdvfDh+S7cQh9Zc9z+fLuPXnm2T0Lz1l9+tmBR7Sx1jb6ADaZI1d358m/OHzf74NhbTzP2lq2\nHn1knnhq90YfyYazNv66tbVky1Fbs2vV2uCvW1ub/Ldl6cit+fMnn9ngo9l4Rx15RI495siNPoyv\nskh0n5nkriTp7s9W1Wkz216VZEd370qSqrovydlJTl9nzuuS3DP9+M4kb0qyN8n93b07ye6q2pHk\nlOnX/ZmZse+rquOSHN3dX5h+vbuTnJtkU0X3V/bszY/e9ECefPorBzXvl3/zC4OOCADg68PSUvLe\n73tdTn7F8Rt9KH/NItF9XJInZj7fW1Vbu3vPfratJjl+vTlJlrp77QBj9/f67GtPPm/sN887+JWV\n5aUDneAIn/jXb96ILwsAwCa0yC9SPplkeXbONLj3t205yZfmzHlugbH7e/1AYwEAYNNaJLrvT/Lm\nJJnen/3IzLbHkryyqk6sqqMyubXkwTlzHq6q7dOPL0hyb5KHkpxVVduq6vhMbll5dHYf+8Z295NJ\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x27924fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 先看看price分布\n",
    "plt.figure(figsize=(12,8))\n",
    "sns.distplot(train.price.values, bins=50, kde=True)\n",
    "plt.xlabel('price', fontsize=15)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "....额这也太不平衡了。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\ipykernel_launcher.py:3: DeprecationWarning: \n",
      ".ix is deprecated. Please use\n",
      ".loc for label based indexing or\n",
      ".iloc for positional indexing\n",
      "\n",
      "See the documentation here:\n",
      "http://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate_ix\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n",
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\indexing.py:179: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  self._setitem_with_indexer(indexer, value)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x276a05f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 处理一下price这个\n",
    "percent_99 = np.percentile(train.price.values, 99)#99%位数 调了几次每次调都要重新run\n",
    "train['price'].ix[train['price']>percent_99] = percent_99\n",
    "\n",
    "plt.figure(figsize=(12,8))\n",
    "sns.distplot(train.price.values, bins= 50, kde=True)\n",
    "plt.xlabel('price', fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这样就比较接近正态分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.4latitude&longitude"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nJvEMAABN/w93NIsUqYBXnwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x279bab38>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(12,8))\n",
    "sns.distplot(train.latitude.values, bins =50, kde=False)\n",
    "plt.xlabel('latitude', fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "emmmm..继续同样处理latitude"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\ipykernel_launcher.py:3: DeprecationWarning: \n",
      ".ix is deprecated. Please use\n",
      ".loc for label based indexing or\n",
      ".iloc for positional indexing\n",
      "\n",
      "See the documentation here:\n",
      "http://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate_ix\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n",
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\indexing.py:179: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  self._setitem_with_indexer(indexer, value)\n",
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\ipykernel_launcher.py:4: DeprecationWarning: \n",
      ".ix is deprecated. Please use\n",
      ".loc for label based indexing or\n",
      ".iloc for positional indexing\n",
      "\n",
      "See the documentation here:\n",
      "http://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate_ix\n",
      "  after removing the cwd from sys.path.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x61a7fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "percent_99 = np.percentile(train.latitude.values, 99)\n",
    "percent_1 = np.percentile(train.latitude.values, 1)\n",
    "train['latitude'].ix[train['latitude']>percent_99]= percent_99\n",
    "train['latitude'].ix[train['latitude']<percent_1] = percent_1\n",
    "\n",
    "plt.figure(figsize=(12,8))\n",
    "sns.distplot(train.latitude.values, bins=50, kde=False)\n",
    "plt.xlabel('latitude', fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "集中在纬度40.7-40.8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\ipykernel_launcher.py:3: DeprecationWarning: \n",
      ".ix is deprecated. Please use\n",
      ".loc for label based indexing or\n",
      ".iloc for positional indexing\n",
      "\n",
      "See the documentation here:\n",
      "http://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate_ix\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n",
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\pandas\\core\\indexing.py:179: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  self._setitem_with_indexer(indexer, value)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nIgoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x4cc4a20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "percent_99 = np.percentile(train.longitude.values, 99)\n",
    "percent_1 = np.percentile(train.longitude.values, 1)\n",
    "train['longitude'].ix[train['longitude']>percent_99]= percent_99\n",
    "train['longitude'].ix[train['longitude']<percent_1] = percent_1\n",
    "plt.figure(figsize=(12,9))\n",
    "sns.distplot(train.longitude.values, bins=50, kde=False)\n",
    "plt.xlabel('longitude',fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "基本集中在经度74.02-73.94"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.5特征选取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 不知道怎么处理photos, features, description_words，manager_id, listing_id这些特征，只好尝试取文字长度，\n",
    "# features可能会得到比较好的反应，其他可能影响未知\n",
    "train['num_photos'] = train['photos'].apply(len)\n",
    "train['num_features'] = train['features'].apply(len)\n",
    "train['num_description_words'] = train['description'].apply(lambda x: len(x.split(\" \")))#分离出空格等空值\n",
    "train['created']= pd.to_datetime(train['created'])\n",
    "train['created_year'] = train['created'].dt.year\n",
    "train['created_month'] = train['created'].dt.month\n",
    "train['created_day'] = train['created'].dt.day\n",
    "# 试着去掉一些特征\n",
    "numerical_features = ['num_photos','num_features','num_description_words','created_year','created_month','created_day',\n",
    "                     'latitude','longitude','bathrooms','bedrooms','price']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.分割数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x: (49352, 11)\n",
      "y: (49352,)\n"
     ]
    }
   ],
   "source": [
    "y_train = train['interest_level'].values\n",
    "x_train = train[numerical_features]\n",
    "print('x:',x_train.shape)\n",
    "print('y:',y_train.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x: (39481, 11)\n",
      "y: (39481,)\n",
      "x_test: (9871, 11)\n",
      "y_test: (9871,)\n"
     ]
    }
   ],
   "source": [
    "#train_test_split\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(x_train,y_train, random_state=0, test_size=0.2)\n",
    "print('x:',X_train.shape)\n",
    "print('y:',y_train.shape)\n",
    "print('x_test:', X_test.shape)\n",
    "print('y_test:', y_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3.数据标准化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "ss_x = StandardScaler()\n",
    "X_train = ss_x.fit_transform(X_train)\n",
    "X_test = ss_x.transform(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4.1使用LogisticRegressionCV进行正则化的Logistic参数调优"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegressionCV(Cs=[0.1, 1, 10, 100, 1000], class_weight=None, cv=5,\n",
       "           dual=False, fit_intercept=True, intercept_scaling=1.0,\n",
       "           max_iter=100, multi_class='ovr', n_jobs=1, penalty='l1',\n",
       "           random_state=None, refit=True, scoring='neg_log_loss',\n",
       "           solver='liblinear', tol=0.0001, verbose=0)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# LogisticRegressionCV\n",
    "from sklearn.linear_model import LogisticRegressionCV\n",
    "Cs = [0.1, 1,10,100,1000]\n",
    "lrcv_L1 = LogisticRegressionCV(Cs=Cs, cv=5, scoring='neg_log_loss', penalty='l1', solver='liblinear', multi_class='ovr')\n",
    "lrcv_L1.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'high': array([[-0.24321859, -0.24325554, -0.24326258, -0.24326334, -0.24326338],\n",
       "        [-0.24192766, -0.24200647, -0.24201809, -0.24201892, -0.24201918],\n",
       "        [-0.24041367, -0.24032507, -0.24031952, -0.24031897, -0.24031901],\n",
       "        [-0.24029479, -0.24022711, -0.24022313, -0.24022276, -0.24022277],\n",
       "        [-0.23945698, -0.23936709, -0.23936142, -0.23936093, -0.23936087]]),\n",
       " 'low': array([[-0.5471309 , -0.54709386, -0.547091  , -0.54709099, -0.54709089],\n",
       "        [-0.54565273, -0.54565792, -0.54565935, -0.54565967, -0.5456595 ],\n",
       "        [-0.54624746, -0.54623038, -0.54622961, -0.54622942, -0.54622938],\n",
       "        [-0.5463515 , -0.54635182, -0.54635283, -0.54635297, -0.54635292],\n",
       "        [-0.54674899, -0.5467476 , -0.54674847, -0.54674851, -0.54674832]]),\n",
       " 'medium': array([[-0.50142267, -0.50136131, -0.50135583, -0.50135531, -0.50135538],\n",
       "        [-0.50251443, -0.50250712, -0.50250733, -0.50250739, -0.50250739],\n",
       "        [-0.50372637, -0.50372813, -0.50372936, -0.50372938, -0.50372943],\n",
       "        [-0.5042811 , -0.50429542, -0.50429762, -0.50429784, -0.50429785],\n",
       "        [-0.50472581, -0.50473484, -0.50473657, -0.5047368 , -0.50473679]])}"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lrcv_L1.scores_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C is : [    1.  1000.    10.]\n"
     ]
    }
   ],
   "source": [
    "print('C is :', lrcv_L1.C_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.05297647,  0.22478882,  0.05056787,  0.        ,  0.00640067,\n",
       "        -0.10468397, -0.07165574, -0.19291216,  0.29152303,  0.72125373,\n",
       "        -2.51888099],\n",
       "       [-0.07769307, -0.26895676, -0.1251404 ,  0.        ,  0.01256898,\n",
       "         0.05912488,  0.08629935,  0.20374146, -0.26721829, -0.7067114 ,\n",
       "         1.81134675],\n",
       "       [ 0.05859679,  0.22772652,  0.12195351,  0.        , -0.01908914,\n",
       "        -0.02728041, -0.04386921, -0.18134147,  0.15261121,  0.51841064,\n",
       "        -1.18271958]])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lrcv_L1.coef_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "稀疏系数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.2使用搜索进行正则化的LogisticRegression参数调优"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise',\n",
       "       estimator=LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
       "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
       "          verbose=0, warm_start=False),\n",
       "       fit_params={}, iid=True, n_jobs=1,\n",
       "       param_grid={'penalty': ['l1', 'l2'], 'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
       "       scoring='neg_log_loss', verbose=0)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# GridSearchCV\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "penaltys = ['l1', 'l2']\n",
    "Cs =[0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "tuned_parameters = dict(penalty = penaltys, C = Cs)\n",
    "lr_penalty = LogisticRegression()\n",
    "grid = GridSearchCV(lr_penalty, tuned_parameters, cv=5, scoring='neg_log_loss')\n",
    "grid.fit(X_train, y_train)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([ 0.30961771,  0.45802636,  0.53683071,  0.58423338,  0.54163103,\n",
       "         0.51122923,  0.55923204,  0.52102976,  0.51842957,  0.53663058,\n",
       "         0.54243116,  0.51022921,  0.5230299 ,  0.54943147]),\n",
       " 'mean_score_time': array([ 0.07440424,  0.07100396,  0.06700368,  0.10280595,  0.07840443,\n",
       "         0.07020407,  0.07080398,  0.07400422,  0.0634037 ,  0.07020416,\n",
       "         0.07540426,  0.06800385,  0.07180414,  0.07180409]),\n",
       " 'mean_test_score': array([-0.77824656, -0.75708741, -0.71636923, -0.71714867, -0.71243471,\n",
       "        -0.71252339, -0.71233395, -0.71233737, -0.71232726, -0.7123273 ,\n",
       "        -0.71232641, -0.71232639, -0.71232645, -0.7123263 ]),\n",
       " 'mean_train_score': array([-0.77817322, -0.75684499, -0.71603948, -0.71680166, -0.71206581,\n",
       "        -0.71214826, -0.71195474, -0.71195774, -0.71194708, -0.71194718,\n",
       "        -0.71194626, -0.71194622, -0.71194623, -0.71194613]),\n",
       " 'param_C': masked_array(data = [0.001 0.001 0.01 0.01 0.1 0.1 1 1 10 10 100 100 1000 1000],\n",
       "              mask = [False False False False False False False False False False False False\n",
       "  False False],\n",
       "        fill_value = ?),\n",
       " 'param_penalty': masked_array(data = ['l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2'],\n",
       "              mask = [False False False False False False False False False False False False\n",
       "  False False],\n",
       "        fill_value = ?),\n",
       " 'params': ({'C': 0.001, 'penalty': 'l1'},\n",
       "  {'C': 0.001, 'penalty': 'l2'},\n",
       "  {'C': 0.01, 'penalty': 'l1'},\n",
       "  {'C': 0.01, 'penalty': 'l2'},\n",
       "  {'C': 0.1, 'penalty': 'l1'},\n",
       "  {'C': 0.1, 'penalty': 'l2'},\n",
       "  {'C': 1, 'penalty': 'l1'},\n",
       "  {'C': 1, 'penalty': 'l2'},\n",
       "  {'C': 10, 'penalty': 'l1'},\n",
       "  {'C': 10, 'penalty': 'l2'},\n",
       "  {'C': 100, 'penalty': 'l1'},\n",
       "  {'C': 100, 'penalty': 'l2'},\n",
       "  {'C': 1000, 'penalty': 'l1'},\n",
       "  {'C': 1000, 'penalty': 'l2'}),\n",
       " 'rank_test_score': array([14, 13, 11, 12,  9, 10,  7,  8,  5,  6,  3,  2,  4,  1]),\n",
       " 'split0_test_score': array([-0.7790455 , -0.75728052, -0.71668709, -0.71738056, -0.71278244,\n",
       "        -0.71283787, -0.71266681, -0.71266671, -0.71265849, -0.71265834,\n",
       "        -0.71265798, -0.71265761, -0.71265784, -0.71265753]),\n",
       " 'split0_train_score': array([-0.77804571, -0.75680556, -0.71587016, -0.71668297, -0.71192862,\n",
       "        -0.71201149, -0.7118197 , -0.71182268, -0.71181231, -0.71181247,\n",
       "        -0.71181175, -0.71181155, -0.71181163, -0.71181146]),\n",
       " 'split1_test_score': array([-0.77829293, -0.75604244, -0.71543635, -0.71608325, -0.71232897,\n",
       "        -0.71231016, -0.71233717, -0.7123276 , -0.71234208, -0.71234061,\n",
       "        -0.71234215, -0.71234205, -0.71234243, -0.71234219]),\n",
       " 'split1_train_score': array([-0.77828562, -0.75718539, -0.71608439, -0.71692211, -0.7120342 ,\n",
       "        -0.712127  , -0.71191855, -0.71192256, -0.71191046, -0.71191074,\n",
       "        -0.71190968, -0.71190966, -0.71190972, -0.71190955]),\n",
       " 'split2_test_score': array([-0.77777363, -0.75672821, -0.71652151, -0.71723808, -0.71234022,\n",
       "        -0.7124553 , -0.71220797, -0.712215  , -0.71219807, -0.71219857,\n",
       "        -0.71219696, -0.71219702, -0.71219668, -0.71219687]),\n",
       " 'split2_train_score': array([-0.77848553, -0.75685362, -0.71608517, -0.71681143, -0.71211888,\n",
       "        -0.71219913, -0.71200674, -0.7120095 , -0.71199885, -0.71199885,\n",
       "        -0.71199805, -0.71199788, -0.71199781, -0.71199779]),\n",
       " 'split3_test_score': array([-0.77774048, -0.75783717, -0.71637456, -0.71742121, -0.7122413 ,\n",
       "        -0.71238652, -0.71211133, -0.71212073, -0.71210125, -0.71210179,\n",
       "        -0.71209983, -0.71209998, -0.71210011, -0.7120998 ]),\n",
       " 'split3_train_score': array([-0.77807717, -0.75667701, -0.71607127, -0.71679223, -0.71210847,\n",
       "        -0.71218754, -0.71200044, -0.71200309, -0.71199312, -0.71199313,\n",
       "        -0.71199203, -0.71199224, -0.71199226, -0.71199215]),\n",
       " 'split4_test_score': array([-0.77838002, -0.75754893, -0.71682674, -0.7176204 , -0.71248054,\n",
       "        -0.71262702, -0.71234635, -0.71235671, -0.71233627, -0.71233707,\n",
       "        -0.71233503, -0.71233519, -0.71233505, -0.71233501]),\n",
       " 'split4_train_score': array([-0.77797207, -0.75670339, -0.7160864 , -0.71679957, -0.71213888,\n",
       "        -0.71221613, -0.7120283 , -0.71203089, -0.71202065, -0.7120207 ,\n",
       "        -0.71201977, -0.71201978, -0.71201974, -0.71201969]),\n",
       " 'std_fit_time': array([ 0.0250741 ,  0.0452883 ,  0.03809372,  0.04916536,  0.05024476,\n",
       "         0.01755554,  0.05367405,  0.00948741,  0.01924289,  0.05645362,\n",
       "         0.03436243,  0.01434501,  0.00831909,  0.04261987]),\n",
       " 'std_score_time': array([ 0.00739232,  0.00729431,  0.00695741,  0.036303  ,  0.0098919 ,\n",
       "         0.00879582,  0.00658511,  0.00583122,  0.00249826,  0.00708273,\n",
       "         0.01092948,  0.00657315,  0.00574123,  0.01034275]),\n",
       " 'std_test_score': array([ 0.0004771 ,  0.00063772,  0.0004907 ,  0.00054659,  0.00019003,\n",
       "         0.00018894,  0.00018783,  0.00018486,  0.00018858,  0.00018831,\n",
       "         0.00018888,  0.0001887 ,  0.0001888 ,  0.00018874]),\n",
       " 'std_train_score': array([  1.87677640e-04,   1.82084668e-04,   8.48348525e-05,\n",
       "          7.58743052e-05,   7.71962355e-05,   7.46934554e-05,\n",
       "          7.71344745e-05,   7.68944191e-05,   7.70920126e-05,\n",
       "          7.70218947e-05,   7.69567264e-05,   7.70333505e-05,\n",
       "          7.69871201e-05,   7.70344827e-05])}"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.712326302857\n",
      "{'C': 1000, 'penalty': 'l2'}\n"
     ]
    }
   ],
   "source": [
    "print(-grid.best_score_)\n",
    "print(grid.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.3使用SVM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SVC LinearSVC(C=1.0, class_weight=None, dual=True, fit_intercept=True,\n",
      "     intercept_scaling=1, loss='squared_hinge', max_iter=1000,\n",
      "     multi_class='ovr', penalty='l2', random_state=None, tol=0.0001,\n",
      "     verbose=0):\n",
      "calssification_report:              precision    recall  f1-score   support\n",
      "\n",
      "       high       0.00      0.00      0.00       753\n",
      "        low       0.71      0.98      0.82      6897\n",
      "     medium       0.35      0.05      0.08      2221\n",
      "\n",
      "avg / total       0.57      0.70      0.59      9871\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\sklearn\\metrics\\classification.py:1113: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n",
      "  'precision', 'predicted', average, warn_for)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion matrix:\n",
      "accuracy_scores:0.696788572586\n"
     ]
    },
    {
     "ename": "ValueError",
     "evalue": "could not convert string to float: 'low'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-29-a9995ce1ba02>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m     10\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Confusion matrix:'\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mconfusion_matrix\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_test\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_predict\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     11\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'accuracy_scores:%s'\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0maccuracy_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_test\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_predict\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'log_loss'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlog_loss\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_test\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_predict\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32mD:\\Anaconda3\\envs\\py3\\lib\\site-packages\\sklearn\\metrics\\classification.py\u001b[0m in \u001b[0;36mlog_loss\u001b[1;34m(y_true, y_pred, eps, normalize, sample_weight, labels)\u001b[0m\n\u001b[0;32m   1606\u001b[0m     \u001b[0mThe\u001b[0m \u001b[0mlogarithm\u001b[0m \u001b[0mused\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mnatural\u001b[0m \u001b[0mlogarithm\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mbase\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1607\u001b[0m     \"\"\"\n\u001b[1;32m-> 1608\u001b[1;33m     \u001b[0my_pred\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcheck_array\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_pred\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mensure_2d\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1609\u001b[0m     \u001b[0mcheck_consistent_length\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_pred\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_true\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1610\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\Anaconda3\\envs\\py3\\lib\\site-packages\\sklearn\\utils\\validation.py\u001b[0m in \u001b[0;36mcheck_array\u001b[1;34m(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)\u001b[0m\n\u001b[0;32m    380\u001b[0m                                       force_all_finite)\n\u001b[0;32m    381\u001b[0m     \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 382\u001b[1;33m         \u001b[0marray\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morder\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0morder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    383\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    384\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mensure_2d\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mValueError\u001b[0m: could not convert string to float: 'low'"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.svm import LinearSVC\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from sklearn.metrics import classification_report\n",
    "SVC1 = LinearSVC().fit(X_train, y_train)\n",
    "y_predict = SVC1.predict(X_test)\n",
    "print('SVC %s:' % SVC1)\n",
    "print('calssification_report: %s' %classification_report(y_test, y_predict))\n",
    "print('Confusion matrix:' % confusion_matrix(y_test, y_predict))\n",
    "print('accuracy_scores:%s' %accuracy_score((y_test), y_predict))\n",
    "print('log_loss', log_loss(y_test, y_predict))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从classifcation结果来看好像不太行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "def fit_grid_point_Linear(C, X_train, y_train, x_test, y_test):\n",
    "    #训练集SVC训练\n",
    "    SVC2 = LinearSVC(C=C)\n",
    "    SVC2 = SVC2.fit(X_train,y_train)\n",
    "    #校验集上返回accuracy\n",
    "    accuracy = SVC2.score(X_test, y_test)\n",
    "    print('accuracy:{}'.format(accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy:0.6982068686050046\n",
      "accuracy:0.6985107891804275\n",
      "accuracy:0.6985107891804275\n",
      "accuracy:0.6963833451524668\n",
      "accuracy:0.6967885725863641\n",
      "accuracy:0.6963833451524668\n",
      "accuracy:0.6593050349508661\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\matplotlib\\axes\\_axes.py:545: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.\n",
      "  warnings.warn(\"No labelled objects found. \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x27857080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 参数调优\n",
    "C_s = np.logspace(-6,2,7)\n",
    "\n",
    "accuracy_s = []\n",
    "for i, oneC in enumerate(C_s):\n",
    "    tmp = fit_grid_point_Linear(oneC, X_train, y_train, X_test, y_test)\n",
    "    accuracy_s.append(tmp)\n",
    "x_axis = np.log10(C_s)\n",
    "plt.plot(x_axis, np.array(accuracy_s), 'r-')\n",
    "plt.legend()\n",
    "plt.xlabel('log(C)')\n",
    "plt.ylabel('accuracy')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC\n",
    "def fit_grid_point_RBF(C, gamma, X_train,y_train,X_test,y_test):\n",
    "    SVC3 = SVC(C=C, kernel='rbf', gamma = gamma)\n",
    "    SVC3 = SVC3.fit(X_train,y_train)\n",
    "    accuracy = SVC3.score(X_test, y_test)\n",
    "    print('accuracy:{}'.format(accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6987134028973762\n",
      "accuracy:0.6992199371897477\n",
      "accuracy:0.6987134028973762\n"
     ]
    }
   ],
   "source": [
    "C_s = np.logspace(-6,2,7)\n",
    "gamma_s = np.logspace(-3,3,5)\n",
    "\n",
    "accuracy_s =[]\n",
    "for i ,oneC in enumerate(C_s):\n",
    "    for j,gamma in enumerate(gamma_s):\n",
    "        tmp = fit_grid_point_RBF(oneC, gamma, X_train, y_train, X_test, y_test)\n",
    "        accuracy_s.append(tmp)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这段跑了一个多小时还没跑完emmmm....."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
